20 research outputs found
Java and scala's type systems are unsound: the existential crisis of null pointers
We present short programs that demonstrate the unsoundness of Java and Scala's current type systems. In particular, these programs provide parametrically polymorphic functions that can turn any type into any type without (down) casting. Fortunately, parametric polymorphism was not integrated into the Java Virtual Machine (JVM), so these examples do not demonstrate any unsoundness of the JVM. Nonetheless, we discuss broader implications of these findings on the field of programming languages
A rigorous examination of sequentially expressed algorithms to reveal their concurrency hierarchies
The methods of Scott-Strachey semantics are applied to the
problem of writing programs for parallel computers, using serial
languages such as are in common use, with compilers which
attempt to discover and exploit potential parallelism in
independent sections of program.
A mathematical model of a parallel computer is first
developed in detail, and in chapters 1 and 2 three basic
conditions are derived which together ensure determinacy of
operation in a parallel machine, first in purely semantic terms,
then in a form more related to the syntactic structure of a
language.
The remaining chapters apply these basic conditions to three
actual languages, showing how the conditions can be reduced to
purely syntactic (hence compiler evaluable) tests. Chapter 3
uses a very simple language to introduce the techniques
required. Chapter 4 adds procedures, with all the complexity
they involve. Chapter 5 considers the rather more fruitful
area of arrays and loops.
The result, in all but the most trivial cases, is a rather
complicated set of conditions which, while they produce the
desired effect, suggest that today's commonly used languages are
not the most suitable method of exploiting parallel computers.</p
At the Ragged Edges of Time: The Legend of Tilak and the Normalization of Historical Narratives
No description supplie